home *** CD-ROM | disk | FTP | other *** search
/ The Business Master (3rd Edition) / The Business Master (3rd Edition).iso / files / spreotus / 123fin / mortgage.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-03-30  |  16.5 KB  |  443 lines

  1. 10  '1/20/84 12:30 PM
  2. 20  KEY OFF:CLEAR ,36000:WIDTH 80:SCREEN 0,0,0:ON ERROR GOTO 410
  3. 30  KEY(10) ON:ON KEY(10) GOSUB 35
  4. 33  GOTO 40
  5. 35  RUN'MENU.BAT
  6. 40  KEY(10) ON:LA$="KEY":FOR I=1 TO 37:LA$=LA$+"THEN":NEXT
  7. 50  LA$=LA$+"FNFN":FOR I=1 TO 37:LA$=LA$+"THEN":NEXT:LA$=LA$+"CLOSE"
  8. 60  LB$="SCREEN":FOR I=1 TO 37:LB$=LB$+"THEN":NEXT
  9. 70  LB$=LB$+"STEPSTEP":FOR I=1 TO 37:LB$=LB$+"THEN":NEXT:LB$=LB$+"LOAD"
  10. 80  CLS:DEF SEG:POKE 106,0
  11. 90  COLOR 15,0:FOR I=1 TO 3 STEP 2:FOR J=20 TO 62:LOCATE I,J,0:PRINT "SOUND":NEXT:NEXT
  12. 110  LOCATE 2,19:PRINT"CALL"SPC(43)"CALL"
  13. 120  COLOR 0,7:LOCATE 2,29:PRINT"   B O B  T O L S O N     ":COLOR 3,0
  14. 170  LOCATE 9,27:COLOR 0,7:PRINT" A ";:COLOR 3,0:PRINT" Present / Future Value"
  15. 180  LOCATE 12,27:COLOR 0,7:PRINT" B ";:COLOR 3,0:PRINT" Amortization Analysis"
  16. 190  LOCATE 15,27:COLOR 0,7:PRINT" C ";:COLOR 3,0:PRINT" EXIT to Main Menu "
  17. 230  LOCATE 19,13:COLOR 15,0:PRINT"*****";:COLOR 3:PRINT" Strike Key Corresponding To Function Desired ";:COLOR 15:PRINT"*****":COLOR 3
  18. 290  POKE 106,0
  19. 300  RS$=INKEY$:IF RS$="" THEN 300
  20. 330  IF RS$="B" OR RS$="b" THEN 450
  21. 370  IF RS$="A" OR RS$="a" THEN 3480
  22. 390  IF RS$="C" OR RS$="c" THEN RUN"MENU.BAT
  23. 400  GOTO 300
  24. 410  IF ERR=53 THEN RUN"menu
  25. 420  IF ERR=6 THEN RESUME NEXT
  26. 430  ON ERROR GOTO 0
  27. 440  RETURN
  28. 450  GOTO 500
  29. 460  POKE 106,0
  30. 470  IF INKEY$<>"" THEN 460
  31. 480  RS$=INKEY$:IF RS$="" THEN 480
  32. 490  RETURN
  33. 500  AMNT#=0:IST#=0:TNT#=0:TMT#=0:MD=0:PYMT#=0:NB=0:YS=0:PF#=0
  34. 510  GOSUB 640
  35. 520  GOSUB 700
  36. 530  GOSUB 460
  37. 540  IF (RS$<"a" OR RS$>"e") AND (RS$<"A" OR RS$>"E") THEN 530
  38. 550  IF RS$="A" OR RS$="a" THEN HD$="Calculate Interest Rate ":GOTO 600
  39. 560  IF RS$="B" OR RS$="b" THEN HD$="Calculate Payment Amount":GOTO 610
  40. 570  IF RS$="C" OR RS$="c" THEN HD$=" Calculate Loan Amount  ":GOTO 620
  41. 580  IF RS$="D" OR RS$="d" THEN HD$=" Calculate Loan Payoff  ":GOTO 630
  42. 590  IF RS$="E" OR RS$="e" THEN 40
  43. 600  GOSUB 640:GOSUB 790:GOSUB 930:GOSUB 950:GOSUB 970:GOSUB 990:GOSUB 1150:GOSUB 1050:GOSUB 780:GOSUB 460:GOTO 500
  44. 610  GOSUB 640:GOSUB 790:GOSUB 930:GOSUB 970:GOSUB 990:GOSUB 1010:GOSUB 1300:GOSUB 1050:GOSUB 780:GOSUB 460:GOTO 500
  45. 620  GOSUB 640:GOSUB 790:GOSUB 950:GOSUB 970:GOSUB 990:GOSUB 1010:GOSUB 1380:GOSUB 1050:GOSUB 780:GOSUB 460:GOTO 500
  46. 630  GOSUB 640:GOSUB 790:GOSUB 930:GOSUB 950:GOSUB 990:GOSUB 1010:GOSUB 1030:GOSUB 1460:GOSUB 1050:GOSUB 780:GOSUB 460:GOTO 500
  47. 640  CLS:PRINT:COLOR 0,7:PRINT" F10 ";:COLOR 7,0:PRINT" To Menu":COLOR 11,0
  48. 650  FOR I=1 TO 3 STEP 2:FOR J=20 TO 62:LOCATE I,J,0:PRINT"SOUND":NEXT:NEXT
  49. 660  LOCATE 1,19:PRINT"VARPTR":LOCATE 1,63:PRINT"COLOR":LOCATE 3,63:PRINT"'":LOCATE 3,19:PRINT"CLS"
  50. 670  LOCATE 2,19:PRINT"CALL"SPC(43)"CALL"
  51. 680  COLOR 0,7
  52. 690  LOCATE 2,29:PRINT" A M O R T I Z A T I O N ":COLOR 7,0:RETURN
  53. 700  COLOR 11,0:LOCATE 5,30:PRINT"Functions Available"
  54. 710  PRINT;TAB(30);"--------------------"
  55. 720  LOCATE 8,26:COLOR 0,7:PRINT" A ";:COLOR 7,0:PRINT" Calculate interest rate"
  56. 730  LOCATE 10,26:COLOR 0,7:PRINT" B ";:COLOR 7,0:PRINT" Calculate payment amount"
  57. 740  LOCATE 12,26:COLOR 0,7:PRINT" C ";:COLOR 7,0:PRINT" Calculate loan amount"
  58. 750  LOCATE 14,26:COLOR 0,7:PRINT" D ";:COLOR 7,0:PRINT" Calculate loan payoff"
  59. 760  LOCATE 16,26:COLOR 0,7:PRINT" E ";:COLOR 7,0:PRINT" Return to main menu"
  60. 770  COLOR 11,0:LOCATE 23,12,0:PRINT"***** Strike Key Corresponding To Function Desired *****":COLOR 7,0:RETURN
  61. 780  LOCATE 25,22,0:PRINT"***** Strike Key To Return To Menu *****";:COLOR 7,0:RETURN
  62. 790  COLOR 11,0:LOCATE 4,30:PRINT HD$:COLOR 7,0
  63. 800  LOCATE 5,11:PRINT"KEY";:FOR I=1 TO 58:PRINT"THEN";:NEXT:PRINT"CLOSE"
  64. 810  FOR J=6 TO 23:LOCATE J,70:PRINT"OPEN":NEXT:LOCATE J,70:PRINT"LOAD";
  65. 820  FOR J=69 TO 12 STEP -1:LOCATE 24,J:PRINT"THEN";:NEXT:LOCATE 24,11:PRINT"SCREEN";
  66. 830  FOR J=23 TO 6 STEP -1:LOCATE J,11:PRINT"OPEN":NEXT
  67. 840  LOCATE 6,16:PRINT"Loan Amount"
  68. 850  LOCATE 8,16:PRINT"Payment Amount"
  69. 860  LOCATE 10,16:PRINT"Number Of Years"
  70. 870  LOCATE 12,16:PRINT"No. Payments Per Year"
  71. 880  LOCATE 14,16:PRINT"Interest Rate"
  72. 890  LOCATE 16,16:PRINT"No. Payments made"
  73. 900  LOCATE 18,16:PRINT"Payoff Amount"
  74. 910  LOCATE 20,16:PRINT"Total Interest Paid"
  75. 920  LOCATE 22,16:PRINT"Total Amount To Pay":RETURN
  76. 930  LOCATE 6,16,1:COLOR 11,0:PRINT"Loan Amount                   ";
  77. 940  GOSUB 1550:AMNT#=VAL(ZA):IF AMNT#=0 THEN 930 ELSE RETURN
  78. 950  LOCATE 8,16,1:COLOR 11,0:PRINT"Payment Amount                ";
  79. 960  GOSUB 1550:PYMT#=VAL(ZA):IF PYMT#=0 THEN 950 ELSE RETURN
  80. 970  LOCATE 10,16,1:COLOR 11,0:PRINT"Number Of Years               ";
  81. 980  GOSUB 6350:YS=VAL(ZA):IF YS=0 THEN 970 ELSE RETURN
  82. 990  LOCATE 12,16,1:COLOR 11,0:PRINT"No. Payments Per Year         ";
  83. 1000  GOSUB 6350:NB=VAL(ZA):IF NB=0 THEN 990 ELSE RETURN
  84. 1010  LOCATE 14,16,1:COLOR 11,0:PRINT"Interest Rate                 ";
  85. 1020  DEC=3:GOSUB 1550:IST#=VAL(ZA):IF IST#=0 THEN 1010 ELSE RETURN
  86. 1030  LOCATE 16,16,1:COLOR 11,0:PRINT"No. Payments Made             ";
  87. 1040  GOSUB 6350:MD=VAL(ZA):RETURN
  88. 1050  LOCATE 6,16:PRINT USING"Loan Amount             $$################,.##";AMNT#
  89. 1060  LOCATE 8,16:PRINT USING"Payment Amount          $$################,.##";PYMT#
  90. 1070  LOCATE 10,16:PRINT USING"Number Of Years            ################,.#";YS
  91. 1080  LOCATE 12,16:PRINT USING"No. Payments Per Year        #############,###";NB
  92. 1090  LOCATE 14,16:PRINT USING"Interest Rate            ################,.##%";IST#;
  93. 1100  IF SW THEN PRINT" +":SW=0
  94. 1110  LOCATE 16,16:PRINT USING"No. Payments made            ############,####";MD
  95. 1120  LOCATE 18,16:PRINT USING"Payoff Amount          $$#################,.##";PF#
  96. 1130  LOCATE 20,16:PRINT USING"Total Interest Paid    $$#################,.##";TNT#
  97. 1140  LOCATE 22,16:PRINT USING"Total Amount To Pay    $$#################,.##";TMT#:RETURN
  98. 1150  X1#=0:X2#=1:IST#=0.5
  99. 1160  I#=(AMNT#*IST#)/(PYMT#*NB)-1+(1/((1+(IST#/NB))^(YS*NB)))
  100. 1170  IF ABS(ABS(I#)-0)<0 GOTO 1250
  101. 1180  IF I#>0 THEN 1230
  102. 1190  IF HH#=I# THEN IST#=1:SW=1:GOTO 1250 ELSE HH#=I#
  103. 1200  X1#=IST#
  104. 1210  IST#=(X1#+X2#)/2
  105. 1220  GOTO 1160
  106. 1230  X2#=IST#
  107. 1240  GOTO 1210
  108. 1250  TMT#=YS*PYMT#*NB
  109. 1260  TNT#=TMT#-AMNT#
  110. 1270  PF#=AMNT#
  111. 1280  IST#=(INT(IST#*10000+0.5))/100
  112. 1290  RETURN
  113. 1300  IST#=IST#/100
  114. 1310  PYMT#=((AMNT#*IST#)/NB)/(1-(1/(((1+(IST#/NB))^(YS*NB)))))
  115. 1320  PYMT#=(INT(PYMT#*100+0.5))/100
  116. 1330  TMT#=YS*PYMT#*NB
  117. 1340  IST#=IST#*100
  118. 1350  TNT#=TMT#-AMNT#
  119. 1360  PF#=AMNT#
  120. 1370  RETURN
  121. 1380  IST#=IST#/100
  122. 1390  AMNT#=PYMT#*((1-(1/((1+(IST#/NB))^(YS*NB))))/(IST#/NB))
  123. 1400  AMNT#=(INT(AMNT#*100+0.5))/100
  124. 1410  TMT#=YS*PYMT#*NB
  125. 1420  PF#=AMNT#
  126. 1430  TNT#=TMT#-AMNT#
  127. 1440  IST#=IST#*100
  128. 1450  RETURN
  129. 1460  IST#=IST#/100
  130. 1470  PF#=AMNT#*((1+(IST#/NB))^MD)-PYMT#*((1-((1+(IST#/NB))^MD))/(-(IST#/NB)))
  131. 1480  PF#=(INT(PF#*100+0.5))/100
  132. 1490  IST#=IST#*100
  133. 1500  TMT#=PF#
  134. 1510  TNT#=PF#-(AMNT#-PYMT#*MD)
  135. 1520  TNT#=(INT(TNT#*100+0.5))/100
  136. 1530  RETURN
  137. 1540  COLOR 7,0:GOTO 40
  138. 1550  GOTO 6040
  139. 1560  GOTO 1570
  140. 1570  GOSUB 1580:GOSUB 1690:GOSUB 1680:GOSUB 460:GOTO 1570
  141. 1580  CLS:PRINT:COLOR 0,7:PRINT" F10 ";:COLOR 7,0:PRINT" To Menu":COLOR 11,0
  142. 1590  FOR I=1 TO 3 STEP 2:FOR J=20 TO 62:LOCATE I,J,0:PRINT"SOUND":NEXT:NEXT
  143. 3480  GOTO 3490
  144. 3490  AMNT#=0:IST#=0:TNT#=0:TMT#=0:MD=0:PYMT#=0:NB=0:YS=0:PRS#=0
  145. 3500  GOSUB 3630
  146. 3510  GOSUB 3680
  147. 3520  GOSUB 460
  148. 3530  IF (RS$<"a" OR RS$>"e") AND (RS$<"A" OR RS$>"E") THEN 3520
  149. 3540  IF RS$="A" OR RS$="a" THEN HD$="Calculate Present Value ":GOTO 3590
  150. 3550  IF RS$="B" OR RS$="b" THEN HD$="Calculate Future Value  ":GOTO 3600
  151. 3560  IF RS$="C" OR RS$="c" THEN HD$=" Calculate Interest Rate":GOTO 3610
  152. 3570  IF RS$="D" OR RS$="d" THEN HD$="Calculate No. Of Years ":GOTO 3620
  153. 3580  IF RS$="E" OR RS$="e" THEN 40
  154. 3590  GOSUB 3630:GOSUB 3770:GOSUB 3890:GOSUB 3930:GOSUB 3950:GOSUB 4040:GOSUB 3990:GOSUB 3760:GOSUB 460:GOTO 3490
  155. 3600  GOSUB 3630:GOSUB 3770:GOSUB 3870:GOSUB 3930:GOSUB 3950:GOSUB 4070:GOSUB 3990:GOSUB 3760:GOSUB 460:GOTO 3490
  156. 3610  GOSUB 3630:GOSUB 3770:GOSUB 3870:GOSUB 3890:GOSUB 3930:GOSUB 4100:GOSUB 3990:GOSUB 3760:GOSUB 460:GOTO 3490
  157. 3620  GOSUB 3630:GOSUB 3770:GOSUB 3870:GOSUB 3890:GOSUB 3950:GOSUB 4490:GOSUB 3990:GOSUB 3760:GOSUB 460:GOTO 3490
  158. 3630  CLS
  159. 3640  FOR I=1 TO 3 STEP 2:FOR J=20 TO 62:LOCATE I,J,0:PRINT "SOUND":NEXT:NEXT
  160. 3650  LOCATE 1,19:PRINT"VARPTR":LOCATE 1,63:PRINT"COLOR":LOCATE 3,63:PRINT"'":LOCATE 3,19:PRINT "CLS"
  161. 3660  LOCATE 2,19:PRINT"CALL"SPC(43)"CALL":COLOR 0,7
  162. 3670  LOCATE 2,21:PRINT" P R E S E N T / F U T U R E   V A L U E ":COLOR 7,0:RETURN
  163. 3680  COLOR 11,0:LOCATE 5,30,0:PRINT"Functions Available"
  164. 3690  PRINT TAB(30)"--------------------"
  165. 3700  LOCATE 8,26:COLOR 0,7:PRINT" A ";:COLOR 7,0:PRINT" Calculate Present Value"
  166. 3710  LOCATE 10,26:COLOR 0,7:PRINT" B ";:COLOR 7,0:PRINT" Calculate Future Value"
  167. 3720  LOCATE 12,26:COLOR 0,7:PRINT" C ";:COLOR 7,0:PRINT" Calculate Interest Rate
  168. 3730  LOCATE 14,26:COLOR 0,7:PRINT" D ";:COLOR 7,0:PRINT" Calculate Number Of Years"
  169. 3740  LOCATE 16,26:COLOR 0,7:PRINT" E ";:COLOR 7,0:PRINT" Return to main menu"
  170. 3750  COLOR 11,0:LOCATE 23,12,0:PRINT"***** Strike Key Corresponding To Function Desired *****":COLOR 7,0:RETURN
  171. 3760  LOCATE 25,22,0:PRINT"***** Strike Key To Return To Menu *****";:COLOR 7,0:RETURN
  172. 3770  COLOR 11,0:LOCATE 4,30:PRINT HD$:COLOR 7,0
  173. 3780  LOCATE 5,11:PRINT"KEY";:FOR I=1 TO 58:PRINT"THEN";:NEXT:PRINT "CLOSE"
  174. 3790  FOR J=6 TO 23:LOCATE J,70:PRINT"OPEN":NEXT:LOCATE ,70:PRINT"LOAD";
  175. 3800  FOR J=69 TO 12 STEP -1:LOCATE 24,J:PRINT"THEN";:NEXT:LOCATE 24,11:PRINT"SCREEN";
  176. 3810  FOR J=23 TO 6 STEP -1:LOCATE J,11:PRINT"OPEN":NEXT
  177. 3820  LOCATE 8,22:PRINT"Present Value"
  178. 3830  LOCATE 11,22:PRINT"Future Value"
  179. 3840  LOCATE 14,22:PRINT"Number Of Years"
  180. 3850  LOCATE 17,22:PRINT"Interest Rate"
  181. 3860  LOCATE 20,22:PRINT"Return on Investment":RETURN
  182. 3870  LOCATE 8,22,1:COLOR 11,0:PRINT"Present Value         ";
  183. 3880  GOSUB 4760:PRS#=VAL(ZA):IF PRS#=0 THEN 3870 ELSE RETURN
  184. 3890  LOCATE 11,22,1:COLOR 11,0:PRINT"Future Value          ";
  185. 3900  GOSUB 4760:FT#=VAL(ZA):IF FT#=0 THEN 3890
  186. 3910  IF FT#<=PRS# THEN LOCATE 23,13:PRINT"Future Value Must Be Greater Than Present Value - Retry":FOR I=1 TO 2500:NEXT:LOCATE 23,13:PRINT SPC(55):LOCATE 11,46:PRINT SPC(20):GOTO 3890
  187. 3920  RETURN
  188. 3930  LOCATE 14,22,1:COLOR 11,0:PRINT"Number Of Years       ";
  189. 3940  DEC=2:GOSUB 4760:YS=VAL(ZA):IF YS=0 THEN 3930 ELSE RETURN
  190. 3950  LOCATE 17,22,1:COLOR 11,0:PRINT"Interest Rate         ";
  191. 3960  DEC=3:GOSUB 4760:IST#=VAL(ZA):IF IST#=0 THEN 3950 ELSE RETURN
  192. 3970  LOCATE 20,22,1:COLOR 11,0:PRINT"Return On Investment    ";
  193. 3980  GOSUB 4760:RETRN#=VAL(ZA):IF RETRN#=0 THEN 3970 ELSE RETURN
  194. 3990  LOCATE 8,22:PRINT USING"Present Value       $$############,.##";PRS#
  195. 4000  LOCATE 11,22:PRINT USING"Future Value        $$############,.##";FT#
  196. 4010  LOCATE 14,22:PRINT USING"Number Of Years     ###############.##";YS
  197. 4020  LOCATE 17,22:PRINT USING"Interest Rate       ##############.##%";IST#
  198. 4030  LOCATE 20,22:PRINT USING"Return On Investment $$###########,.##";RETRN#:RETURN
  199. 4040  PRS#=INT((FT#/((1+IST#/100)^YS)+0.005)*100)/100
  200. 4050  RETRN#=FT#-PRS#
  201. 4060  RETURN
  202. 4070  FT#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100
  203. 4080  RETRN#=FT#-PRS#
  204. 4090  RETURN
  205. 4100  IST#=5.1:BT#=INT((FT#-FT#*9.9999E-05)*100):TP#=INT((FT#+FT#*9.9999E-05)*100)
  206. 4110  GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100
  207. 4120  GS#=INT(GS#*100)
  208. 4130  IF GS#>BT# AND GS#<TP# THEN 4470
  209. 4140  IF GS#>TP# THEN IST#=IST#-5:GOTO 4170
  210. 4150  IST#=IST#+5
  211. 4160  GOTO 4110
  212. 4170  GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100
  213. 4180  GS#=INT(GS#*100)
  214. 4190  IF GS#>BT# AND GS#<TP# THEN 4470
  215. 4200  IF GS#>TP# THEN IST#=IST#-1:GOTO 4230
  216. 4210  IST#=IST#+1
  217. 4220  GOTO 4170
  218. 4230  GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100
  219. 4240  GS#=INT(GS#*100)
  220. 4250  IF GS#>BT# AND GS#<TP# THEN 4470
  221. 4260  IF GS#>TP# THEN IST#=IST#-0.1:GOTO 4290
  222. 4270  IST#=IST#+0.1
  223. 4280  GOTO 4230
  224. 4290  GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100
  225. 4300  GS#=INT(GS#*100)
  226. 4310  IF GS#>BT# AND GS#<TP# THEN 4470
  227. 4320  IF GS#>TP# THEN IST#=IST#-0.01:GOTO 4350
  228. 4330  IST#=IST#+0.01
  229. 4340  GOTO 4290
  230. 4350  GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100
  231. 4360  GS#=INT(GS#*100)
  232. 4370  IF GS#>BT# AND GS#<TP# THEN 4470
  233. 4380  IF GS#>TP# THEN IST#=IST#-0.000999999:GOTO 4410
  234. 4390  IST#=IST#+0.000999999
  235. 4400  GOTO 4350
  236. 4410  GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100
  237. 4420  GS#=INT(GS#*100)
  238. 4430  IF GS#>BT# AND GS#<TP# THEN 4470
  239. 4440  IF GS#>TP# THEN 4470
  240. 4450  IST#=IST#+9.9999E-05
  241. 4460  GOTO 4410
  242. 4470  RETRN#=FT#-PRS#
  243. 4480  RETURN
  244. 4490  YS=1.1
  245. 4500  BT#=INT((FT#-FT#*0.005)*100)
  246. 4510  TP#=INT((FT#+FT#*0.005)*100)
  247. 4520  GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100
  248. 4530  GS#=INT(GS#*100)
  249. 4540  IF GS#>TP# THEN YS=YS-10:GOTO 4570
  250. 4550  YS=YS+10
  251. 4560  GOTO 4520
  252. 4570  GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100
  253. 4580  GS#=INT(GS#*100)
  254. 4590  IF GS#>TP# THEN YS=YS-1:GOTO 4620
  255. 4600  YS=YS+1
  256. 4610  GOTO 4570
  257. 4620  GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100
  258. 4630  GS#=INT(GS#*100)
  259. 4640  IF GS#>TP# THEN YS=YS-0.5:GOTO 4670
  260. 4650  YS=YS+0.5
  261. 4660  GOTO 4620
  262. 4670  GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100
  263. 4680  GS#=INT(GS#*100)
  264. 4690  IF GS#>BT# AND GS#<TP# THEN 4730
  265. 4700  IF GS#>TP# THEN 4730
  266. 4710  YS=YS+0.05
  267. 4720  GOTO 4670
  268. 4730  RETRN#=FT#-PRS#
  269. 4740  RETURN
  270. 4750  GOTO 40
  271. 4760  GOTO 6040
  272. 4770  GOTO 4780
  273. 4780  GOSUB 4790:GOSUB 4900:GOSUB 4890:GOSUB 460:GOTO 4780
  274. 4790  CLS:PRINT:COLOR 0,7:PRINT" F10 ";:COLOR 7,0:PRINT" To Menu":COLOR 11,0
  275. 4800  FOR I=1 TO 3 STEP 2:FOR J=20 TO 62:LOCATE I,J,0:PRINT "SOUND":NEXT:NEXT
  276. 4810  LOCATE 1,19:PRINT"VARPTR":LOCATE 1,63:PRINT"COLOR":LOCATE 3,63:PRINT"'":LOCATE 3,19:PRINT"CLS"
  277. 4820  LOCATE 2,19:PRINT"CALL"SPC(43)"CALL":COLOR 0,7
  278. 4830  LOCATE 2,27:PRINT" R E - O R D E R   P O I N T ":COLOR 7,0
  279. 4840  COLOR 11,0:LOCATE 4,29:PRINT"Inventory Re-order Point":COLOR 7,0
  280. 4850  LOCATE 5,11:PRINT"KEY";:FOR I=1 TO 58:PRINT"THEN";:NEXT:PRINT"CLOSE"
  281. 4860  FOR J=6 TO 23:LOCATE J,70:PRINT"OPEN":NEXT:LOCATE ,70:PRINT"LOAD";
  282. 4870  FOR J=69 TO 12 STEP-1:LOCATE 24,J:PRINT"THEN";:NEXT:LOCATE 24,11:PRINT"SCREEN";
  283. 4880  FOR J=23 TO 6 STEP-1:LOCATE J,11:PRINT"OPEN":NEXT:RETURN
  284. 4890  COLOR 11,0:LOCATE 25,17,0:PRINT"***** Strike Any Key For Additional Analysis *****";:COLOR 7,0:RETURN
  285. 4900  LOCATE 7,18,0:PRINT"Units Used Daily"
  286. 4910  LOCATE 9,18:PRINT"Delivery Days Required"
  287. 4920  COLOR 11,0:LOCATE 7,18,1:PRINT"Units Used Daily        ";
  288. 4930  GOSUB 6350
  289. 4940  UNITS#=VAL(ZA)
  290. 4950  IF UNITS#=0 THEN 4920
  291. 4960  LOCATE 9,18,1:PRINT"Delivery Days Required  ";
  292. 4970  GOSUB 6350:TIME#=VAL(ZA):IF TIME#=0 THEN 4960
  293. 4980  LOCATE 7,18,0:PRINT USING"Units Used Daily           ##########,##";UNITS#
  294. 4990  LOCATE 9,18:PRINT USING"Delivery Days Required     ##########,##";TIME#
  295. 5000  LOCATE 11,13:PRINT"Safety Margin       Minimum Quantity      Re-order Point"
  296. 5010  MA#=0
  297. 5020  MN#=INT(UNITS#*TIME#+0.5)
  298. 5030  FOR I=13 TO 21
  299. 5040  RO#=INT(MA#*MN#+MN#+0.5)
  300. 5050  MA#=INT(MA#*100)
  301. 5060  LOCATE I,18:PRINT USING"##%            ########,##          ########,##";MA#;MN#;RO#
  302. 5070  IF I=13 THEN COLOR 7,0
  303. 5080  MA#=INT((MA#/100+0.055)*100)/100
  304. 5090  NEXT
  305. 5100  RETURN
  306. 5110  GOTO 6040
  307. 5120  GOTO 5130
  308. 5130  GOSUB 5140:GOSUB 5190:GOTO 5240
  309. 5140  CLS:PRINT:COLOR 0,7:PRINT" F10 ";:COLOR 7,0:PRINT" To Menu":COLOR 11,0
  310. 5150  FOR I=1 TO 3 STEP 2:FOR J=20 TO 62:LOCATE I,J,0:PRINT"SOUND":NEXT:NEXT
  311. 5160  LOCATE 1,19:PRINT"VARPTR":LOCATE 1,63:PRINT"COLOR":LOCATE 3,63:PRINT"'":LOCATE 3,19:PRINT"CLS"
  312. 5170  LOCATE 2,19:PRINT"CALL" SPC(43) "CALL":COLOR 0,7
  313. 5180  LOCATE 2,29:PRINT" S T O C K   R A T I O S ":COLOR 7,0:RETURN
  314. 5190  COLOR 11,0:LOCATE 4,30,0:PRINT"Enter Known Information"
  315. 5200  LOCATE 5,11:PRINT"KEY";:FOR I=1 TO 58:PRINT"THEN";:NEXT:PRINT"CLOSE"
  316. 5210  FOR J=6 TO 22:LOCATE J,70:PRINT"OPEN":NEXT:LOCATE ,70:PRINT"LOAD";
  317. 5220  FOR J=69 TO 12 STEP -1:LOCATE 23,J:PRINT"THEN";:NEXT:LOCATE 23,11:PRINT"SCREEN";
  318. 5230  FOR J=22 TO 6 STEP -1:LOCATE J,11:PRINT"OPEN":NEXT:COLOR 7,0:RETURN
  319. 5240  LOCATE 6,16:PRINT"Average Inventory"
  320. 5250  LOCATE 7,16:PRINT"Current Assets"
  321. 5260  LOCATE 8,16:PRINT"Fixed and Long-Term Assets"
  322. 5270  LOCATE 9,33:PRINT"Total Assets"
  323. 5280  LOCATE 11,16:PRINT"Current Liabilities"
  324. 5290  LOCATE 12,16:PRINT"Long-Term Liabilities"
  325. 5300  LOCATE 13,28:PRINT"Total Liabilities"
  326. 5310  LOCATE 15,16:PRINT"Net Sales"
  327. 5320  LOCATE 16,16:PRINT"Cost of Goods Sold"
  328. 5330  LOCATE 17,16:PRINT"Total Operating Expenses"
  329. 5340  LOCATE 18,35:PRINT"Net Income"
  330. 5350  LOCATE 20,16:PRINT"Shareholders Equity"
  331. 5360  LOCATE 21,16:PRINT"Shares Outstanding"
  332. 5370  LOCATE 22,16:PRINT"Price Per Share
  333. 5380  CR#=0:QR#=0:IU#=0:ITR#=0:FAU#=0:TAU#=0:DTE#=0:OP#=0:PWR#=0:NPNS#=0:ROIA#=0:PER#=0:EPS#=0
  334. 5390  LOCATE 6,16,1:COLOR 11,0:PRINT"Average Inventory                  ";
  335. 5400  GOSUB 6030:I#=VAL(ZA)
  336. 5410  LOCATE 7,16,1:COLOR 11,0:PRINT"Current Assets                     ";
  337. 5420  GOSUB 6030:CA#=VAL(ZA)
  338. 5430  LOCATE 8,16,1:COLOR 11,0:PRINT"Fixed And Long Term Assets         ";
  339. 5440  GOSUB 6030:NFA#=VAL(ZA)
  340. 5450  LOCATE 9,33,1:COLOR 11,0:PRINT"Total Assets     ";
  341. 5460  TA#=CA#+NFA#
  342. 5470  PRINT USING"$$###########,.##";TA#
  343. 5480  LOCATE 11,16,1:COLOR 11,0:PRINT"Current Liabilities                ";
  344. 5490  GOSUB 6030:CL#=VAL(ZA)
  345. 5500  LOCATE 12,16,1:COLOR 11,0:PRINT"Long Term Liabilities              ";
  346. 5510  GOSUB 6030:LTD#=VAL(ZA)
  347. 5520  LOCATE 13,28,1:COLOR 11,0:PRINT"Total Liabilities     ";
  348. 5530  TD#=CL#+LTD#
  349. 5540  PRINT USING"$$###########,.##";TD#
  350. 5550  LOCATE 15,16,1:COLOR 11,0:PRINT"Net Sales                          ";
  351. 5560  GOSUB 6030:S#=VAL(ZA)
  352. 5570  LOCATE 16,16,1:COLOR 11,0:PRINT"Cost of Goods Sold                 ";
  353. 5580  GOSUB 6030:COG#=VAL(ZA)
  354. 5590  LOCATE 17,16,1:COLOR 11,0:PRINT"Total Operating Expenses           ";
  355. 5600  GOSUB 6030:OE#=VAL(ZA)
  356. 5610  LOCATE 18,35,1:COLOR 11,0:PRINT"Net Income     ";
  357. 5620  NI#=S#-COG#-OE#
  358. 5630  PRINT USING"$$###########,.##";NI#
  359. 5640  LOCATE 20,16,1:COLOR 11,0:PRINT"Shareholders Equity                ";
  360. 5650  GOSUB 6030:SE#=VAL(ZA)
  361. 5660  LOCATE 21,16,1:COLOR 11,0:PRINT"Shares Outstanding                 ";
  362. 5670  GOSUB 6350:SO#=VAL(ZA)
  363. 5680  LOCATE 22,16,1:COLOR 11,0:PRINT"Price Per Share                    ";
  364. 5690  GOSUB 6030:PPS#=VAL(ZA)
  365. 5700  LOCATE 24,18:PRINT"***** Strike Any Key To Calculate Ratios *****";:GOSUB 460:GOSUB 5140:COLOR 11,0:LOCATE 4,31,0:PRINT"These Are Your Ratios":GOSUB 5200
  366. 5710  IF CA#>0 AND CL#>0 THEN CR#=CA#/CL#
  367. 5720  TA#=CA#+NFA#
  368. 5730  IF CL#<>0 AND CA#<>I# THEN QR#=(CA#-I#)/CL#
  369. 5740  IF S#>0 AND I#>0 THEN IU#=S#/I#
  370. 5750  IF COG#>0 AND I#>0 THEN ITR#=COG#/I#
  371. 5760  IF S#>0 AND NFA#<>0 THEN FAU#=S#/NFA#
  372. 5770  IF S#>0 AND TA#>0 THEN TAU#=S#/TA#
  373. 5780  X1#=(TD#-CL#+SE#)
  374. 5790  IF X1#<0.01 THEN ELSE DTE#=(TD#-CL#)/X1#
  375. 5800  IF OE#>0 AND S#>0 THEN OP#=OE#/S#
  376. 5810  IF SE#<>0 THEN PWR#=NI#/SE#
  377. 5820  IF S#<>0 THEN NPNS#=NI#/S#
  378. 5830  IF TA#<>0 THEN ROIA#=NI#/TA#
  379. 5840  IF SO#<>0 THEN EPS#=NI#/SO#
  380. 5850  IF EPS#<>0 THEN PER#=PPS#/EPS#
  381. 5860  LOCATE 6,58,0:PRINT"Averages"
  382. 5870  LOCATE 8,15,0:PRINT USING"Current Ratio             #####.##";CR#;:PRINT;"            2.5 x"
  383. 5880  LOCATE 9,15:PRINT USING"Quick Ratio               #####.##";QR#;:PRINT;"            1.0 x"
  384. 5890  LOCATE 10,15:PRINT USING"Inventory Utilization     #####.##";IU#;:PRINT;"              9 x"
  385. 5900  LOCATE 11,15:PRINT USING"Inventory Turnover Ratio  #####.##";ITR#;:PRINT;"            .17 x   "
  386. 5910  LOCATE 12,15:PRINT USING"Fixed Asset Utilization   #####.##";FAU#;:PRINT;"            3.0 x"
  387. 5920  LOCATE 13,15:PRINT USING"Total Asset Utilization   #####.##";TAU#;:PRINT;"            1.8 x"
  388. 5930  LOCATE 14,15:PRINT USING"Debt to Equity Ratio       ####.##";DTE#;:PRINT;"         Variable"
  389. 5940  LOCATE 15,15:PRINT USING"Operating Ratio           #####.##";OP#;:PRINT;"            .60 x"
  390. 5950  LOCATE 16,15:PRINT USING"Profits-Worth Ratio        ####.##";PWR#;:PRINT;"            .18 x"
  391. 5960  LOCATE 17,15:PRINT USING"N.Profits-N.Sales Ratio    ####.##";NPNS#;:PRINT;"            .05 x"
  392. 5970  LOCATE 18,15:PRINT USING"ROI in Assets Ratio        ####.##";ROIA#;:PRINT;"         Variable"
  393. 5980  LOCATE 19,15:PRINT USING"Price Earnings Ratio      #####.##";PER#;:PRINT;"            9.0 x"
  394. 5990  LOCATE 20,15:PRINT USING"Earnings Per Share         $###.##";EPS#;:PRINT;"         Variable"
  395. 6000  COLOR 11,0:LOCATE 24,16,0:PRINT"***** Strike Any Key To Try Another Analysis *****";
  396. 6010  GOSUB 460:GOTO 5130
  397. 6020  COLOR 7,0:GOTO 40
  398. 6030  GOTO 6040
  399. 6040  LENGTH=12:DEFSTR Z:FIRSTONE=1:DEF SEG=&H40:POKE &H17,(PEEK(&H17) OR 96)
  400. 6050  IF DEC=1 THEN MASK$=" #############,.#":DEC=0:GOTO 6090
  401. 6060  IF DEC=2 THEN MASK$=" ############,.##":DEC=0:GOTO 6090
  402. 6070  IF DEC=3 THEN MASK$=" ###########,.##%":DEC=0:GOTO 6090
  403. 6080  MASK$="$$"+STRING$(11,"#")+",.##"
  404. 6090  ZH="000":XLIN=CSRLIN:XPOS=POS(0)-1:ZR=SPACE$(LENGTH):FLAG=0:PERIOD=0
  405. 6100  RSET ZR=ZH:LOCATE XLIN,XPOS,1:PRINT USING MASK$;VAL(ZR)/100;:LOCATE ,POS(0)-1
  406. 6110  DEF SEG:POKE 106,0:IF INKEY$<>"" THEN 6110
  407. 6120  ZI=INKEY$:IF ZI="" THEN 6120
  408. 6130  IF ZI="0" AND FIRSTONE THEN 6120 ELSE FIRSTONE=0
  409. 6140  IF ZI=CHR$(13) THEN ZA=SPACE$(LENGTH+2):ZH=STR$(VAL(ZH)/100):RSET ZA=ZH:RETURN
  410. 6150  IF ZI="." AND PERIOD=0 THEN PERIOD=1:GOTO 6120
  411. 6160  IF LEN(ZI)>1 THEN IF RIGHT$(ZI,1)=CHR$(75) THEN 6270 ELSE 6120
  412. 6170  IF ZI=CHR$(8) THEN 6270
  413. 6180  IF FLAG OR ZI<"0" OR ZI>"9" THEN 6120
  414. 6190  IF PERIOD=1 THEN MID$(ZH,LEN(ZH)-1,1)=ZI:GOTO 6230
  415. 6200  IF PERIOD=2 THEN MID$(ZH,LEN(ZH),1)=ZI:GOTO 6230
  416. 6210  IF LEN(ZH)>LENGTH-1 THEN 6120
  417. 6220  ZH=ZH+"0":MID$(ZH,LEN(ZH)-2)=ZI
  418. 6230  RSET ZR=ZH:LOCATE XLIN,XPOS,1:PRINT USING MASK$;VAL(ZR)/100;:LOCATE ,POS(0)-1
  419. 6240  IF PERIOD=2 THEN FLAG=1
  420. 6250  IF PERIOD=1 THEN PERIOD=2
  421. 6260  GOTO 6120
  422. 6270  IF LEN(ZH)<3 THEN ZH="0"+ZH
  423. 6280  IF LEN(ZH)<3 THEN 6120
  424. 6290  IF PERIOD=1 THEN PERIOD=0:MID$(ZH,LEN(ZH)-1,1)="0":GOTO 6330
  425. 6300  IF PERIOD=2 AND FLAG THEN FLAG=0:PERIOD=1:MID$(ZH,LEN(ZH),1)="0":GOTO 6330
  426. 6310  IF PERIOD=2 THEN PERIOD=0:MID$(ZH,LEN(ZH)-1)="0":GOTO 6330
  427. 6320  MID$(ZH,LEN(ZH)-2,1)="0":ZH=LEFT$(ZH,LEN(ZH)-1)
  428. 6330  LOCATE XLIN,XPOS:PRINT SPC(LENGTH);
  429. 6340  LOCATE XLIN,XPOS,1:RSET ZR=ZH:PRINT USING MASK$;VAL(ZR)/100;:LOCATE ,POS(0)-1:GOTO 6120
  430. 6350  DEFSTR Z:MASK$="############,### ":ZA=SPACE$(10)
  431. 6360  XLIN=CSRLIN:XPOS=POS(0):PRINT USING MASK$;0;
  432. 6370  ZH="":DEF SEG:POKE 106,0:IF INKEY$<>"" THEN 6370
  433. 6380  ZI=INKEY$:IF ZI="" THEN 6380
  434. 6390  IF ZI=CHR$(13) THEN LSET ZA=ZH:RETURN
  435. 6400  IF ZI=CHR$(8) OR RIGHT$(ZI,1)=CHR$(75) THEN 6450
  436. 6410  IF LEN(ZI)>1 THEN 6370
  437. 6420  IF ZI<"0" OR ZI>"9" THEN 6380
  438. 6430  IF LEN(ZH)>9 THEN 6380
  439. 6440  ZH=ZH+ZI:RSET ZA=ZH:LOCATE XLIN,XPOS:PRINT USING MASK$;VAL(ZA);:GOTO 6380
  440. 6450  IF LEN(ZH)<1 THEN 6380
  441. 6460  ZH=LEFT$(ZH,LEN(ZH)-1):RSET ZA=ZH:LOCATE XLIN,XPOS:PRINT USING MASK$;VAL(ZA);:GOTO 6380
  442. 6470  GOTO 40
  443.